# 序列化：把模型转换为字典

from booktest.serializers import BookInfoModelSerializer, HeroInfoSerializer
from booktest.models import BookInfo, HeroInfo

"""测试继承ModelSerializer序列化器"""

serializer = BookInfoModelSerializer()














"""以下代码是用于测试反序列化的"""
# json_dict = {'btitle':'三国 django<第二版>', 'bpub_date':'1991-1２-22','bread':'20', 'bcomment':'10'}
# serializer = BookInfoSerializer(data=json_dict)  # 反序列化时，要给data参数传递数
# serializer.is_valid()  # 在获取反序列化后的数据之前，必须先校验数据，如果成功返回True 否则返回False
# serializer.errors  # 获取错误信息返回的字典
# serializer.is_valid(raise_exception=True)  # 有异常自动抛出即如果想让异常自动抛出，指定raise_exception=True
# serializer.validated_data  # 获取反序列化后的数据
# serializer.save()　　# 如果在反序列化时，没有传递ｉｎｓｔｒｅｎｃｅ对应的实参，ｓａｖｅ就是新增

# book = BookInfo.objects.get(id=7)
# json_dict = {'btitle':'三国 django<第二版>', 'bpub_date':'1991-1２-22','bread':'20', 'bcomment':'10'}
# serializer = BookInfoModelSerializer(book, data=json_dict)  # 反序列化时，要给data参数传递数
# serializer.is_valid()  # 在获取反序列化后的数据之前，必须先校验数据，如果成功返回True 否则返回False
# # serializer.errors  # 获取错误信息返回的字典
# serializer.is_valid(raise_exception=True)  # 有异常自动抛出即如果想让异常自动抛出，指定raise_exception=True
# # serializer.validated_data  # 获取反序列化后的数据
# serializer.save()  # 如果在反序列化时，传递了ｉｎｓｔｒｅｎｃｅ对应的实参，ｓａｖｅ就是更新



"""以下代码是用于测试序列化的"""
# 序列化的基本操作（序列化一个模型对象）
# book = BookInfo.objects.get(id=1)
# serializer = BookInfoSerializer(instance=book)  #　创建序列化器的同时传递模型对象，那么就是序列化操作
# serializer.data  # 获取序列化之后的字典

# 序列化查询集中的多个模型
# queryset = BookInfo.objects.all()
# serializer = BookInfoSerializer(instance=queryset, many=True)  # 序列化查询集时，要告诉序列化器是有多个值：many=True
# serializer.data

# 序列化英雄模型
# hero = HeroInfo.objects.get(id=1)
# serializer = HeroInfoSerializer(instance=hero)
# serializer.data